#include<bits/stdc++.h>
using namespace std;
#define fastIO ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0)
#define ll long long
#define MAX(a,b) (((b)>(a)) ? b : a )
#define MIN(a,b) (((a)<(b)) ? a : b)
#define endl "\n"
#define space " "
long long binarySearch(int key, int arr[], int s, int e)
{
while(s<=e)
{
int mid=(s+e)/2;
if (arr[mid]==key)
return mid;
else if (arr[mid]>key)
e=mid-1;
else
s=mid+1;
}
return -1;
//O(logn), O(1)
}
long long GCD(int a, int b)
{
// Everything divides 0
if (a == 0)
return b;
if (b == 0)
return a;
// base case
if (a == b)
return a;
// a is greater
if (a > b)
return GCD(a-b, b);
return GCD(a, b-a);
}
long long LCM(int a, int b)
{
return a*b/GCD(a,b);
}
//------------------------------------------------------------//
void solve()
{
int n,m;
cin>>n>>m;
int a[n];
int b[m];
map<ll,ll> mp; //value, freq
for(int i=0;i<n;i++)
{
cin>>a[i];
mp[a[i]]++;
}
for(int i=0;i<m;i++)
{
cin>>b[i];
}
for(int i=0;i<m;i++)
{
for(auto &x:mp)
{
if (x.second>0)
{
x.second--;
break;
}
}
mp[b[i]]++;
}
ll answer=0;
for(auto x:mp)
{
if (x.second>0)
{
answer=answer + x.first*x.second;
}
}
cout<<answer<<endl;
}
int main()
{
fastIO;
int t;
cin>>t;
while(t--)
{
solve();
}
}
1288A - Deadline | 1617A - Forbidden Subsequence |
914A - Perfect Squares | 873D - Merge Sort |
1251A - Broken Keyboard | 463B - Caisa and Pylons |
584A - Olesya and Rodion | 799A - Carrot Cakes |
1569B - Chess Tournament | 1047B - Cover Points |
1381B - Unmerge | 1256A - Payment Without Change |
908B - New Year and Buggy Bot | 979A - Pizza Pizza Pizza |
731A - Night at the Museum | 742A - Arpa’s hard exam and Mehrdad’s naive cheat |
1492A - Three swimmers | 1360E - Polygon |
1517D - Explorer Space | 1230B - Ania and Minimizing |
1201A - Important Exam | 676A - Nicholas and Permutation |
431A - Black Square | 474B - Worms |
987B - High School Become Human | 1223A - CME |
1658B - Marin and Anti-coprime Permutation | 14B - Young Photographer |
143A - Help Vasilisa the Wise 2 | 320A - Magic Numbers |